iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0
DevOps

今晚我想來點 Terraform 佐 AWS系列 第 23

今晚我想來點優雅的 Terraform 風格指南

  • 分享至 

  • xImage
  •  

我們漸漸的熟悉 Terraform,基礎架構的設計會越來越複雜。所以更要優雅的寫程式,不對,是寫組態。

所以今天要來研究一點 Terraform 的風格指南。

統一的風格,幫助團隊產出的檔案更加一致,提高閱讀的順暢度,如同其他程式語言都會制訂風格指南一樣。

以下參考官方以及一些網站上的風格指南,整理出一些主要規範。

檔案編碼

首先,Terraform 的檔案必須是 UTF-8 編碼。

命名

  • 使用 _ 底線,小寫的英文字母,以及數字來命名資源。
  • 使用單數名詞命名
  • 避免型態名稱出現在命名中
    • 好: resource "aws_route_table" "public" {}
    • 壞: resource "aws_route_table" "public_route_table" {}

註解

  • 單行註解以 # 字元開始
  • 多行註解用 /**/ 符號包住

排版

自動格式化程式碼工具 terraform fmt 會自動處理排版風格:

  • 換行字元: 使用 Linux 格式 (LF)。
  • 縮排: 使用兩個空白字元縮排。
  • 等號對齊: 出現連續多行有使用等號的組態時,會對齊等號
  • 區塊內的引數順序:
    • 同時出現引數跟區塊時,引數在前區塊在後,中間間隔一行。
    • 不同引數群組使用空行分隔。
    • 同時出現引數 (arguments) 跟元引數 (meta-arguments) 時,最先放元引數,再放其他的引數,區塊型態的元引數在最後。
    • 範例:
    esource "aws_instance" "example" {
     count = 2 # 元引數最先
    
     ami           = "abc123"
     instance_type = "t2.micro"
    
     network_interface {
    # ...
     }
    
     lifecycle { # 元引數區塊最後
    create_before_destroy = true
     }
    
    ``
    
  • 最外層的區塊之間都要間隔一個空行。

還有一些詳細的條件,就交給 terraform fmt 處理吧。

Reference


上一篇
今晚我想使用自製的 Terraform 模組
下一篇
今晚我想來點 Terraform 搭 Golang 風味無伺服器架構
系列文
今晚我想來點 Terraform 佐 AWS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言